api: "YAML JSON TOON Database"
version: "1.0.0"
format: "json"
dataset:
  slug: "solid-principles"
  title: "SOLID Principles"
  description: "Five design principles for writing maintainable object-oriented code."
  category: "Design Patterns"
  category_slug: "design-patterns"
  tags: "design-patterns,solid,oop,software-engineering"
  view_count: 0
data:
  - principle: "S - Single Responsibility"
    description: "A class should have only one reason to change."
    example: "Separate UserAuth from UserProfile."
  - principle: "O - Open/Closed"
    description: "Open for extension, closed for modification."
    example: "Add new payment types without changing existing processor."
  - principle: "L - Liskov Substitution"
    description: "Subtypes must be substitutable for their base types."
    example: "A Square should not extend Rectangle if width=height invariant breaks."
  - principle: "I - Interface Segregation"
    description: "Prefer many small client-specific interfaces over one large interface."
    example: "Separate Printer and Scanner interfaces."
  - principle: "D - Dependency Inversion"
    description: "Depend on abstractions, not concrete implementations."
    example: "Controller depends on ILogger interface, not FileLogger."
