Re: [community-group] Add a `$private` property for tokens (#110)

To piggyback off of the "private" vs "internal" discussion...

- **private**: exist after parsing
- **internal**: do not exist after parsing

## Private
A private token is one that is still included in code after transformation has taken place (see my [previous comment](https://github.com/design-tokens/community-group/issues/110#issuecomment-1148941702)).  The responsibility lies with the translation tool to identify "private" members, regardless of how private content is defined by the spec (whether it be `_` convention or explicit configuration).

## Internal
An internal token is one that is not explicitly defined in code _after_ transformation has taken place.  

If the spec allowed it, I'd be inclined to define internals using `$defs` (similar to how SVG `<defs>` behaves) and apply them using `$ref` (similar to SVG `<use>`).

```javascript
{
  // $defs will NOT be used for token _discovery_, but
  // will be used for token property _resolution_
  "$defs": {
    "colors": {
      "$type": "color",
      "green": {
        "$value": "#00ff00"
      }
    }
  },
  "red": {
    "$type": "color",
    "$value": "#ff0000"
  },
  "blue": {
    "$type": "color",
    "$value": "#0000ff"
  },
  "grass": {
    // alias of an "internal" token
    "$ref": "#/$defs/colors.green"
  }
}
```
This would resolve to the following flattened hierarchy...
```json
```

### Internal Examples
If `_green` were an "internal" token in my previous comment, you'd never see any reference to it in generated code, you'd only have the resolved value.

_example (JavaScript: ESM format)_
```javascript
export const red = '#ff0000';
export const blue = '#0000ff';
export const grass = '#00ff00';
```

_example (CSS)_
```css
:root {
  --red: #ff0000;
  --blue: #0000ff;
  --grass: #00ff00;
}
```



-- 
GitHub Notification of comment by CITguy
Please view or discuss this issue at https://github.com/design-tokens/community-group/issues/110#issuecomment-1150473756 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 8 June 2022 22:24:22 UTC