{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/feedback1-ai/json-schema/feedback1-ai-public-feature-schema.json",
  "title": "PublicFeature",
  "description": "Feature model for public roadmap",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/feedback1-ai-openapi.json#/components/schemas/PublicFeature",
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/$defs/StateInfo"
        }
      ],
      "title": "State"
    },
    "votes_count": {
      "type": "integer",
      "title": "Votes Count",
      "default": 0
    },
    "comments_count": {
      "type": "integer",
      "title": "Comments Count",
      "default": 0
    },
    "created_at": {
      "type": "string",
      "title": "Created At"
    },
    "createdDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Createddate"
    },
    "theme": {
      "anyOf": [
        {
          "$ref": "#/$defs/ThemeInfo"
        },
        {
          "type": "null"
        }
      ]
    },
    "subsystem": {
      "anyOf": [
        {
          "$ref": "#/$defs/SubsystemInfo"
        },
        {
          "type": "null"
        }
      ]
    },
    "column_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Column Id"
    },
    "section_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section Id"
    },
    "user_voted": {
      "type": "boolean",
      "title": "User Voted",
      "default": false
    },
    "voted_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Voted At"
    },
    "slug": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Slug"
    },
    "updatedDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updateddate"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At"
    },
    "type": {
      "anyOf": [
        {
          "$ref": "#/$defs/FeatureTypeInfo"
        },
        {
          "type": "null"
        }
      ]
    },
    "endDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Enddate"
    }
  },
  "type": "object",
  "required": [
    "id",
    "title",
    "name",
    "state",
    "created_at"
  ],
  "$defs": {
    "FeatureTypeInfo": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "FeatureTypeInfo",
      "description": "Public feature type label (portal showTypeLabels)."
    },
    "StateInfo": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        },
        "color": {
          "type": "string",
          "title": "Color"
        }
      },
      "type": "object",
      "required": [
        "name",
        "color"
      ],
      "title": "StateInfo",
      "description": "State information for features"
    },
    "SubsystemInfo": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        },
        "slug": {
          "type": "string",
          "title": "Slug"
        },
        "color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Color"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "slug"
      ],
      "title": "SubsystemInfo",
      "description": "Subsystem/module information for features"
    },
    "ThemeInfo": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "name": {
          "type": "string",
          "title": "Name"
        },
        "caption": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Caption"
        },
        "color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Color"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "title": "ThemeInfo",
      "description": "Theme/Category information for features"
    }
  }
}