Prevent wrapping block in parapraph

I am looking to prevent wrapping my block in a paragraph I have a mark looking like this

'text-alignment': {
    content: 'inline*',
    group: 'block',
    parseDOM: [{ tag: 'p' }],
    toDOM(mark) {
      return ['p', { style: `text-align: ${mark.attrs.align}` }, 0];
    },
    attrs: {
      align: {},
    },
  },

My input: <p>Share information about your brand with your customers. Describe a product, make <span style="color: yellow"><span style="background-color: red">announcements</span></span>, or welcome customers to your store.</p>

My output after go through ProseMirror: <p><p style="text-align: null">Share information about your brand with your customers. Describe a product, make </p><span style="color: yellow"><span style="background-color: red"><p style="text-align: null">announcements</p></span></span><p style="text-align: null">, or welcome customers to your store.</p></p>

A mark that is rendered as a block node (and matches all paragraph nodes in its parseDOM rules) is just not something that makes sense in the ProseMirror system. Also content isn’t even a valid field on MarkSpec. Maybe you’re defining a node instead? That’s still not something that makes sense though. Text alignment could be implemented as an attribute on paragraphs or other block nodes, not as a mark or separate node type.

Do you mean like this?

const schema = new Schema({
  nodes: addListNodes(
    basicSchema.spec.nodes,
    "paragraph block*",
    "block"
  ).update("paragraph", {
    content: "inline*",
    group: "block",
    parseDOM: [{ tag: "p" }],
    toDOM(mark) {
      return ["p", { style: `text-align: ${mark.attrs.align}` }, 0];
    },
    attrs: {
      align: { default: "left" },
    },
  }),
  marks: {
    ...basicSchema.spec.marks,
    ...CUSTOM_MARK_SPEC,
  },
});

The same result I got