Skip to content

Architecture: Prototype JSON theme loading with Borland3D as proof of concept #261

Description

@sfloess

Part of #233: Architecture: Unify curses-java and curses-themes with shared implementation

Scope

Port the Borland3D theme to JSON format and build a minimal loader in curses-java to validate the approach end-to-end before committing to full migration.

Tasks

  • Create borland3d.json theme file from the existing Java Borland3D implementation
  • Build a JsonThemeLoader class in curses-java that reads a JSON theme file and produces a Theme3D instance
  • Verify the JSON-loaded theme produces identical rendering output to the hardcoded Java implementation
  • Document any data that cannot be expressed in JSON (e.g., custom rendering callbacks)
  • Write tests comparing JSON-loaded vs hardcoded theme behavior

Acceptance Criteria

  • Borland3D renders identically whether loaded from JSON or hardcoded
  • Loader handles missing optional fields gracefully
  • Performance acceptable (theme loading is a one-time cost, but verify no regression in rendering)
  • Any gaps in the JSON schema identified and fed back to the schema sub-issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogFuture enhancement for later consideration

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions