- Use texttools.snake_case for object names
- Update constants to use snake_case
- Adjust optional field decoding logic
- Refine attribute parsing for skip patterns
- Refine `decode_struct` to handle data parsing and error messages
- Enhance `should_skip_field_decode` to cover more skip attribute variations
- Update constants and tests related to struct names
- Adjust `decode_value` to better handle optional types and existing keys
- Modify `decode_struct` to skip optional fields during decoding
- Add support for decoding and encoding nested structs
- Improve handling of optional fields during decoding
- Extend decoding to support various primitive types and time formats
- Add comprehensive tests for struct encoding and decoding
- Implement skip attribute handling for fields during encoding
- Replace simple `contains('skip')` with stricter checks
- Normalize attribute string before checking
- Avoid matching 'skip' as a substring of another word
- Handle space and semicolon-separated attribute lists
- Change action name format from `obj.verb` to `verb.obj`
- Update decoder to look for `define.obj` or `configure.obj`
- Modify encoder export to use the new `define.obj` prefix
- Update all test constants and scripts to the new syntax
- Make Remark struct public for test visibility
- Introduce a new generic `site` module for web generation
- Update `herocmds` to use the new site creation flow
- Simplify docusaurus playbook logic with a `docusaurus.play` fn
- Refactor site generation to act on `Site` struct directly
- Fix playbook find filter to use wildcard `*`
- Updated the assertion for the EUR/USD exchange rate from >= 0.9 to >= 0.8.
- This reflects the current market exchange rate and prevents test failures.