You can't add nonexistent face properties to faces. (You can add any properties you like to face symbols, but that's not the same thing.)
But you can add nonexistent (and existent) text properties to all (or to just some) occurrences of buffer text that has a given face.
You can do that easily with library
isearch-prop.el. You can do it using command
isearchp-add-prop-to-other-prop-zones is an interactive compiled Lisp
(isearchp-add-prop-to-other-prop-zones PROP-TO-ADD VALUE-TO-ADD PROP-TO-FIND VALUE-TO-FIND TYPE-TO-FIND &optional START END MSGP)
Add text property to text that has another property, from
VALUE-TO-ADD are the property to add and its value.
TYPE-TO-FIND are the existing
property, its value, and its type (symbol
END are the buffer limits, or the region limits if active.
Interactively, you are prompted for the required arguments.
nil if the property was added,
nil if not.
See also Isearch+.
dap-ui--make-overlay. If you run under a window system, it defined fringe symbols. You could probably modify it for terminal use (which I guess is your reason for using
line-prefix). How knows, maybe you can suggest this as a possible enhancement to the package.