Odd value reported from the color input option for custom blocks

I created a custom block that has the color selection square as an input and reported the value that it returned:

When I ran the block I got a value like this:

Which is unintuitive to me, because I would have assumed that the reported value would be a list that contained the rgba values, similar to how the (pen [RGBA]) block works, however, to create my project anyway I decided to try to split apart the reported text to get the rgba values, but then I encountered a different problem:

For some reason the reported text is not actually text, and is instead the undefined type, which makes it impossible to split apart to get the individual values.

I would have expected that the value had instead reported a rgba list, and not a undefined type object. Is there a way to get those values that I am missing, or some other way to interact with the undefined type?

Edit:
Here is a project link that contains the two blocks shown above:
https://snap.berkeley.edu/embed?projectname=BR%20Odd%20value%20reported&username=schoolcs002&showTitle=true&showAuthor=true&editButton=true&pauseButton=true

BR Odd value reported script pic
The first block shown here works until you try to put a reporter in it:



The second uses a hidden dev mode block:

With a slight change in definition, this also works more broadly:

I'm guessing that it works this way because the set pen color blocks need the JavaScript object for the color as their input, not a text, and the color input was added for the Blocks All The Way feature. But don't quote me on this.

JOIN will turn it into text:

just wondering, why not just (join (color [rgb(145,28,68)] :: pen) @<:> ?

the color type input slot returns a color object, you don't use any string operations on it! Instead there are extension blocks prefixed with clr_ which you can use to access, transform, or make use of the color object:

Because it has two input slots in the palette. No deep reason.

oh. I was just confused because I thought maybe there was a change that made join with one slot be the same as [id V] of ( .