Skip to content

Architecture: Define canonical JSON schema for theme specifications #260

Description

@sfloess

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

Scope

Design and define a JSON Schema that captures all theme data needed by both curses-java and curses-themes. This schema becomes the single source of truth for theme definitions.

Tasks

  • Define JSON Schema covering: theme name/metadata, border characters (flat and 3D), color pairs (foreground/background for all component states), shadow/highlight/lowlight colors, shadow offsets, 3D rendering parameters
  • Include support for both Theme (flat) and Theme3D (3D borders/shadows) variants
  • Add validation rules (required fields, allowed color values, character constraints)
  • Write 2-3 example theme JSON files (e.g., Borland3D, DOS, TRS-80)
  • Validate examples against schema using a JSON Schema validator

Deliverable

  • theme-schema.json - The JSON Schema definition
  • 2-3 example .json theme files validated against it

Acceptance Criteria

  • Schema covers all properties used by both Java and Python implementations
  • Example themes validate against schema
  • Schema is versioned (includes a $schema or version field)
  • Human-readable and extensible for future theme properties

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