# {{COMPONENTNAME}} Data
#
# {{DESCRIPTION}}
#
# Squad: {{SQUADNAME}}
# Created: {{CREATEDAT}}
# Story: {{STORYID}}

name: {{COMPONENTNAME}}
version: 1.0.0
description: {{DESCRIPTION}}

# Metadata
metadata:
  created: {{CREATEDAT}}
  author: squad-creator
  squad: {{SQUADNAME}}
  tags:
    - data
    - {{SQUADNAME}}

# Data schema definition
schema:
  type: object
  required:
    - id
    - name
  properties:
    id:
      type: string
      description: "Unique identifier"
      pattern: "^[a-z][a-z0-9-]*$"
    name:
      type: string
      description: "Display name"
      minLength: 1
      maxLength: 100
    description:
      type: string
      description: "Optional description"
    enabled:
      type: boolean
      description: "Whether this entry is enabled"
      default: true
    priority:
      type: integer
      description: "Priority level (1-10)"
      minimum: 1
      maximum: 10
      default: 5
    metadata:
      type: object
      description: "Additional metadata"
      additionalProperties: true

# Default values for new entries
defaults:
  enabled: true
  priority: 5
  metadata: {}

# Validation rules
validation:
  - rule: "id must be unique"
    check: "unique(entries.id)"
  - rule: "name must not be empty"
    check: "length(name) > 0"

# Data entries
entries:
  - id: example-1
    name: "Example Entry 1"
    description: "This is an example entry"
    enabled: true
    priority: 5
    metadata:
      category: example

  - id: example-2
    name: "Example Entry 2"
    description: "Another example entry"
    enabled: true
    priority: 3
    metadata:
      category: example

# Usage examples
usage:
  load: |
    const yaml = require('js-yaml');
    const fs = require('fs');
    const data = yaml.load(fs.readFileSync('{{COMPONENTNAME}}.yaml', 'utf8'));
    console.log(data.entries);

  query: |
    const activeEntries = data.entries.filter(e => e.enabled);
    const highPriority = data.entries.filter(e => e.priority >= 7);

  add_entry: |
    data.entries.push({
      id: 'new-entry',
      name: 'New Entry',
      enabled: true,
      priority: 5,
    });
