Named variables as schematic fields are now supported as a special field type. These are fields named something like ${DNP} or ${VALUE}. Their value is always set to the same variable as the name, and the shown name is always the variable without the ${ }.
These have a couple of uses, especially with regards to the BOM generator. The special variables allow exporting non-field properties such as Do Not Place:
/usr/local/bin/kicad-cli sch export bom
input: 1 argument(s) expected. 0 provided.
Usage: bom [-h] [--output VAR] [--fields VAR] [--labels VAR] [--group-by VAR] [--sort-field VAR] [--sort-asc] [--filter VAR] [--group] [--exclude-dnp] [--field-delimiter VAR] [--string-delimiter VAR] [--ref-delimiter VAR] [--ref-range-delimiter VAR] [--keep-tabs] [--keep-line-breaks] input
Positional arguments:
input Input file
Optional arguments:
-h, --help shows help message and exits
-o, --output Output file name [default: ""]
--fields An ordered list of fields to export. [default: "Reference,Value,Footprint,Quantity,${DNP}"]
--labels An ordered list of labels to apply the exported fields. [default: "Refs,Value,Footprint,Qty,DNP"]
--group-by Fields to group references by when field values match. [default: "Value,Footprint,${DNP}"]
They also work when specified in the command line exporter. Be careful of escaping! The shell will eat empty variables like ${DNP} so try ${DNP}, etc.
Lastly, the symbol fields table has gained the Item Number column as another magic column like Quantity.
Graphic shapes (lines, arcs, rectangles, polygons) can now have nets assigned just like tracks.
This allows creating custom copper shapes without having to define them as custom pads inside a footprint.
This is handy for various reasons, for example if you want to define a copper polygon on the board to connect some pads together but don’t want it to be a filled zone (because you do not want it to ever keep clearance from anything like a zone would)