In line with my feedback from projectfluent/fluent.js#310, I'd like to suggest that we rename the main field of the StringLiteral to value and keep the optimization we have as value today with a new name like encoded which we could then mark as "optional" for implementations to introduce.
This would allow us to maybe remove the encoded field from test fixtures since it's an optimization for the fluent.js, rather than part of the reference AST. (or mark that field as optional for tests to pass).