{
  "initial_dictionary": {
    "A": 0,
    "B": 1
  },
  "authored_roundtrips": [
    {
      "text": "ABABABA",
      "codewords": [
        0,
        1,
        2,
        4
      ],
      "encoder_additions": [
        {
          "emitted_phrase": "A",
          "code": 0,
          "new_phrase": "AB",
          "new_code": 2
        },
        {
          "emitted_phrase": "B",
          "code": 1,
          "new_phrase": "BA",
          "new_code": 3
        },
        {
          "emitted_phrase": "AB",
          "code": 2,
          "new_phrase": "ABA",
          "new_code": 4
        }
      ],
      "decoder_steps": [
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": null
        },
        {
          "input_code": 1,
          "decoded_phrase": "B",
          "special_next_code": false,
          "added": {
            "phrase": "AB",
            "code": 2
          }
        },
        {
          "input_code": 2,
          "decoded_phrase": "AB",
          "special_next_code": false,
          "added": {
            "phrase": "BA",
            "code": 3
          }
        },
        {
          "input_code": 4,
          "decoded_phrase": "ABA",
          "special_next_code": true,
          "added": {
            "phrase": "ABA",
            "code": 4
          }
        }
      ],
      "roundtrip": "ABABABA",
      "same_final_dictionary": true
    },
    {
      "text": "AAAA",
      "codewords": [
        0,
        2,
        0
      ],
      "encoder_additions": [
        {
          "emitted_phrase": "A",
          "code": 0,
          "new_phrase": "AA",
          "new_code": 2
        },
        {
          "emitted_phrase": "AA",
          "code": 2,
          "new_phrase": "AAA",
          "new_code": 3
        }
      ],
      "decoder_steps": [
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": null
        },
        {
          "input_code": 2,
          "decoded_phrase": "AA",
          "special_next_code": true,
          "added": {
            "phrase": "AA",
            "code": 2
          }
        },
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": {
            "phrase": "AAA",
            "code": 3
          }
        }
      ],
      "roundtrip": "AAAA",
      "same_final_dictionary": true
    },
    {
      "text": "ABBAAB",
      "codewords": [
        0,
        1,
        1,
        0,
        2
      ],
      "encoder_additions": [
        {
          "emitted_phrase": "A",
          "code": 0,
          "new_phrase": "AB",
          "new_code": 2
        },
        {
          "emitted_phrase": "B",
          "code": 1,
          "new_phrase": "BB",
          "new_code": 3
        },
        {
          "emitted_phrase": "B",
          "code": 1,
          "new_phrase": "BA",
          "new_code": 4
        },
        {
          "emitted_phrase": "A",
          "code": 0,
          "new_phrase": "AA",
          "new_code": 5
        }
      ],
      "decoder_steps": [
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": null
        },
        {
          "input_code": 1,
          "decoded_phrase": "B",
          "special_next_code": false,
          "added": {
            "phrase": "AB",
            "code": 2
          }
        },
        {
          "input_code": 1,
          "decoded_phrase": "B",
          "special_next_code": false,
          "added": {
            "phrase": "BB",
            "code": 3
          }
        },
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": {
            "phrase": "BA",
            "code": 4
          }
        },
        {
          "input_code": 2,
          "decoded_phrase": "AB",
          "special_next_code": false,
          "added": {
            "phrase": "AA",
            "code": 5
          }
        }
      ],
      "roundtrip": "ABBAAB",
      "same_final_dictionary": true
    },
    {
      "text": "",
      "codewords": [],
      "encoder_additions": [],
      "decoder_steps": [],
      "roundtrip": "",
      "same_final_dictionary": true
    },
    {
      "text": "A",
      "codewords": [
        0
      ],
      "encoder_additions": [],
      "decoder_steps": [
        {
          "input_code": 0,
          "decoded_phrase": "A",
          "special_next_code": false,
          "added": null
        }
      ],
      "roundtrip": "A",
      "same_final_dictionary": true
    }
  ],
  "all_binary_messages_length0_to7": 255,
  "invalid_cases_rejected": [
    "unknown_symbol",
    "too_long_text",
    "first_unavailable",
    "future_code",
    "bool_code",
    "negative_code",
    "decoded_budget"
  ],
  "scope": "original bounded integer-codeword teaching codec with alphabet A/B; no EOF marker, file format, binary packing, dictionary reset, Java execution, security or compression-ratio claim"
}
