# configuration/strings/license.strings.ts

> 190 lines of code and 8 definitions.

Tree: Site tree
Language: typescript
Layer: product
Canonical: https://banes-lab.com/anatomy/tree#file-configuration-strings-license-strings-ts
Source text: https://banes-lab.com/assets/sources/source.053784a9c981a789afec9e6918d30f19b255127cfac7b99223eba087858b426f.generated.txt

## Definitions

- `LICENSE_META` (lexical_declaration, line 29, exported)
- `OVERVIEW_SECTION` (lexical_declaration, line 39)
- `FREE_SECTION` (lexical_declaration, line 67)
- `PAID_SECTION` (lexical_declaration, line 107)
- `CONTRIBUTIONS_SECTION` (lexical_declaration, line 133)
- `HEADERS_SECTION` (lexical_declaration, line 146)
- `CONTACT_SECTION` (lexical_declaration, line 165)
- `LICENSE_SECTIONS` (lexical_declaration, line 190, exported)

## Source

```typescript
import { AUTHOR_ADDRESS, GRAMMAR_REPOSITORY, SITE_URL } from "#assets/link.assets";
import {
    DOCUMENTATION_SPDX,
    FREE_SPDX,
    PAID_SPDX,
    TYPES_SECTION,
} from "#configuration/strings/license.fragment.strings";
import type { DocumentMeta, Section } from "#types/document.types";
import {
    LICENSE_CONTACT_ICON,
    LICENSE_CONTRIBUTIONS_ICON,
    LICENSE_FREE_ICON,
    LICENSE_HEADERS_ICON,
    LICENSE_OVERVIEW_ICON,
    LICENSE_PAID_ICON,
} from "#configuration/icons/license.icons";
import {
    LICENSE_CONTACT_SECTION_ID,
    LICENSE_CONTRIBUTIONS_SECTION_ID,
    LICENSE_FREE_SECTION_ID,
    LICENSE_HEADERS_SECTION_ID,
    LICENSE_OVERVIEW_SECTION_ID,
    LICENSE_PAID_SECTION_ID,
} from "#core/ids/license.ids";
import { GRAMMAR_MARK } from "#assets/image.assets";
import { JAVASCRIPT_LANGUAGE } from "#configuration/constants/code.constants";
import { REPLY_NOTE } from "#configuration/strings/company.strings";

export const LICENSE_META: DocumentMeta = {
    closing: `SPDX Identifiers: ${FREE_SPDX} | ${PAID_SPDX} | ${DOCUMENTATION_SPDX}`,
    effectiveDate: "January 2025",
    emblem: GRAMMAR_MARK,
    intro: "Pattern Abstract Grammar (PAG) is available under two licenses, a free non-commercial license and a paid commercial license. The rest of the site's documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0).",
    lastUpdated: "September 2026",
    title: "Licensing",
    version: "1.1.0",
};

const OVERVIEW_SECTION: Section = {
    icon: LICENSE_OVERVIEW_ICON,
    id: LICENSE_OVERVIEW_SECTION_ID,
    subsections: [
        {
            content:
                "The non-commercial license is the default. Any commercial use requires a separate, paid commercial license.",
            title: "Dual-License Model",
        },
        {
            blocks: [
                {
                    entries: [
                        { description: "Jay Baleine", term: "Copyright Holder" },
                        { description: "2025", term: "Year" },
                        { description: "Pattern Abstract Grammar (PAG)", term: "Project" },
                        { description: SITE_URL, term: "Website" },
                        { description: GRAMMAR_REPOSITORY, term: "Repository" },
                    ],
                    kind: "glossary",
                },
            ],
            title: "Copyright",
        },
    ],
    title: "License Overview",
};

const FREE_SECTION: Section = {
    icon: LICENSE_FREE_ICON,
    id: LICENSE_FREE_SECTION_ID,
    subsections: [
        {
            content:
                'Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, subject to the commercial restriction below.',
            title: "Grant of Rights",
        },
        {
            blocks: [
                {
                    items: [
                        "Use in commercial software or products",
                        "Use in paid services or SaaS offerings",
                        "Internal use by for-profit organizations",
                        "Hosting as a service",
                        "Distribution for revenue",
                    ],
                    kind: "list",
                },
                {
                    kind: "text",
                    note: true,
                    text: "Any person who describes, quotes or refers to PAG attributes it to Jay Baleine and cites this site.",
                },
            ],
            content:
                "Any use of the Software for commercial purposes is expressly prohibited without a separate commercial license. Commercial purposes include:",
            title: "Commercial Use Restriction",
        },
        {
            content:
                'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
            title: "Warranty Disclaimer",
        },
    ],
    title: "Non-Commercial License Terms",
};

const PAID_SECTION: Section = {
    icon: LICENSE_PAID_ICON,
    id: LICENSE_PAID_SECTION_ID,
    subsections: [
        {
            blocks: [
                {
                    items: [
                        "Rights for commercial use, distribution, and hosting",
                        "Rights to create derivative works for commercial purposes",
                        "Optional technical support and maintenance",
                    ],
                    kind: "list",
                },
            ],
            content: "A commercial license grants the following rights:",
            title: "Commercial Rights",
        },
        {
            content: "To obtain a commercial license, contact me with your use case details.",
            title: "Obtaining a Commercial License",
        },
    ],
    title: "Commercial License Terms",
};

const CONTRIBUTIONS_SECTION: Section = {
    icon: LICENSE_CONTRIBUTIONS_ICON,
    id: LICENSE_CONTRIBUTIONS_SECTION_ID,
    subsections: [
        {
            content:
                "External contributions are not accepted. PAG is open source, and all of it is published on this site. How I implement it in my own systems and workflows is not part of the release. Forking is permitted under the non-commercial terms.",
            title: "Contribution Terms",
        },
    ],
    title: "Contributions Policy",
};

const HEADERS_SECTION: Section = {
    icon: LICENSE_HEADERS_ICON,
    id: LICENSE_HEADERS_SECTION_ID,
    subsections: [
        {
            blocks: [
                {
                    code: `// 🔒 Copyright 2025 Jay Baleine\n// 🔒 SPDX-License-Identifier: ${FREE_SPDX}\n// 🔒 ${SITE_URL}/licensing\n// 🔒 Commercial use requires a paid license.`,
                    kind: "code",
                    language: JAVASCRIPT_LANGUAGE,
                    title: "Non-Commercial Header",
                },
            ],
            title: "Non-Commercial Header",
        },
    ],
    title: "File Header Requirements",
};

const CONTACT_SECTION: Section = {
    icon: LICENSE_CONTACT_ICON,
    id: LICENSE_CONTACT_SECTION_ID,
    subsections: [
        {
            blocks: [
                {
                    entries: [
                        { description: AUTHOR_ADDRESS, term: "Email" },
                        { description: REPLY_NOTE, term: "Note" },
                    ],
                    kind: "glossary",
                },
            ],
            title: "Contact Details",
        },
        {
            content:
                "For enterprise licensing, volume discounts, or custom terms, contact me with your organization details and use case.",
            title: "Enterprise Licensing",
        },
    ],
    title: "Contact Information",
};

export const LICENSE_SECTIONS: readonly Section[] = [
    TYPES_SECTION,
    OVERVIEW_SECTION,
    FREE_SECTION,
    PAID_SECTION,
    CONTRIBUTIONS_SECTION,
    HEADERS_SECTION,
    CONTACT_SECTION,
];
```
